﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.SqlClient;

namespace childcare
{
    public partial class frmhocphi : Form
    {
        SqlConnection con = new SqlConnection();
        private DataTable dt = new DataTable();
        private SqlDataAdapter da = new SqlDataAdapter();
        private Boolean kt;
        public frmhocphi()
        {
            InitializeComponent();
        }

        private void txtmahocphi_TextChanged(object sender, EventArgs e)
        {
            
        }
        private void databinding()
        {
            txtmahocphi.DataBindings.Clear();
            txtmahocphi.DataBindings.Add("Text", dgvhocphi.DataSource, "HP_ID");
            cbomahs.DataBindings.Clear();
            cbomahs.DataBindings.Add("Text", dgvhocphi.DataSource, "C_ID");
            cbotenhs.DataBindings.Clear();
            cbotenhs.DataBindings.Add("Text", dgvhocphi.DataSource, "name");
            cbolophoc.DataBindings.Clear();
            cbolophoc.DataBindings.Add("Text", dgvhocphi.DataSource, "CL_ID");
            txtsongaydihoc.DataBindings.Clear();
            txtsongaydihoc.DataBindings.Add("Text", dgvhocphi.DataSource, "so_ngay");
            txttienan.DataBindings.Clear();
            txttienan.DataBindings.Add("Text", dgvhocphi.DataSource, "tien_an");
            txthocphi.DataBindings.Clear();
            txthocphi.DataBindings.Add("Text", dgvhocphi.DataSource, "hoc_phi");
            txttongtienphainop.DataBindings.Clear();
            txttongtienphainop.DataBindings.Add("Text", dgvhocphi.DataSource, "tong_tien");
            txtthoigian.DataBindings.Clear();
            txtthoigian.DataBindings.Add("Text", dgvhocphi.DataSource, "thang");
        }

        private void frmhocphi_Load(object sender, EventArgs e)
        {
            // TODO: This line of code loads data into the 'childcareDataSet2._class' table. You can move, or remove it, as needed.
            this.classTableAdapter1.Fill(this.childcareDataSet2._class);
            // TODO: This line of code loads data into the 'childcareDataSet1.children' table. You can move, or remove it, as needed.
            this.childrenTableAdapter1.Fill(this.childcareDataSet1.children);
            string connect = @"Data Source=BLACK-PC\SQLEXPRESS;Initial Catalog=Childcare;Integrated Security=True";
            con = new SqlConnection(connect);
            connectdatabase.Openconnect();
            dgvhocphi.DataSource = connectdatabase.ex("select * from hoc_phi");
            databinding();
            txttongtienphainop.Enabled = false;
            txtmahocphi.Enabled = false;
        }

        private void btnthoat_Click(object sender, EventArgs e)
        {
            this.Close();
            frmguest _frmphu = new frmguest();
            _frmphu.Show();
        }

        //
        private bool test()
        {
            kt = true;
            if (cbomahs.Text == "")
            {
                MessageBox.Show("Bạn phải nhập mã số của học sinh", "THÔNG BÁO", MessageBoxButtons.OK);
                kt = false;
                cbomahs.Focus();
            }
            if (cbotenhs.Text == "")
            {
                MessageBox.Show("Bạn phải nhập họ tên của học sinh", "THÔNG BÁO", MessageBoxButtons.OK);
                kt = false;
                cbotenhs.Focus();
            }
            if (cbolophoc.Text == "")
            {
                MessageBox.Show("Bạn phải nhập lớp của học sinh", "THÔNG BÁO", MessageBoxButtons.OK);
                kt = false;
                cbolophoc.Focus();
            }
            return kt;
        }

        private void btnthem_Click(object sender, EventArgs e)
        {
            test();
            if (kt == true)
            {
                try
                {
                    SqlCommand commandinsert = new SqlCommand();
                    commandinsert.Connection = con;
                    commandinsert.CommandType = CommandType.Text;
                    commandinsert.CommandText = "insert into hoc_phi (C_ID, [name], CL_ID, so_ngay, tien_an, hoc_phi, thang)"
                        + " values (@C_ID, @name, @CL_ID, @so_ngay, @tien_an, @hoc_phi, @thang)";
                    //SqlParameter pram = commandinsert.Parameters.Add("@HP_ID", SqlDbType.VarChar, 6);
                    //pram.Value = txtmahocphi.Text;
                    SqlParameter pram = commandinsert.Parameters.Add("@C_ID", SqlDbType.VarChar, 6);
                    pram.Value = cbomahs.Text;
                    pram = commandinsert.Parameters.Add("@name", SqlDbType.NVarChar, 25);
                    pram.Value = cbotenhs.Text;
                    pram = commandinsert.Parameters.Add("@CL_ID", SqlDbType.VarChar, 6);
                    pram.Value = cbolophoc.Text;
                    pram = commandinsert.Parameters.Add("@so_ngay", SqlDbType.Int);
                    pram.Value = int.Parse(txtsongaydihoc.Text);
                    pram = commandinsert.Parameters.Add("@tien_an", SqlDbType.Int);
                    pram.Value = int.Parse(txttienan.Text);
                    pram = commandinsert.Parameters.Add("@hoc_phi", SqlDbType.Int);
                    pram.Value = int.Parse(txthocphi.Text);
                    pram = commandinsert.Parameters.Add("@thang", SqlDbType.DateTime);
                    pram.Value = txtthoigian.Text;
                    con.Open();
                    commandinsert.ExecuteNonQuery();
                    con.Close();
                    dgvhocphi.DataSource = connectdatabase.ex("select * from hoc_phi");
                    MessageBox.Show("Bạn đã thêm thành công!", "Thông Báo", MessageBoxButtons.OK);
                    databinding();
                }
                catch
                {
                    MessageBox.Show("Mã học phí này đã tồn tại! mời bạn nhập lại mã học phí khác", "Thông Báo", MessageBoxButtons.OK);
                    
                }
            }
        }

        private void btnhuy_Click(object sender, EventArgs e)
        {
            txtmahocphi.Clear();
            cbomahs.Controls.Clear();
            cbotenhs.Controls.Clear();
            cbolophoc.Controls.Clear();
            txtsongaydihoc.Clear();
            txttienan.Clear();
            txthocphi.Clear();
            txttongtienphainop.Clear();
            txtthoigian.Clear();
        }

        private void txtsongaydihoc_TextChanged(object sender, EventArgs e)
        {

        }

        private void cbomahs_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbotenhs_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void cbolophoc_SelectedIndexChanged(object sender, EventArgs e)
        {

        }

        private void txttienan_TextChanged(object sender, EventArgs e)
        {

        }

        private void txthocphi_TextChanged(object sender, EventArgs e)
        {

        }

        private void txttongtienphainop_TextChanged(object sender, EventArgs e)
        {
           
        }

        private void txtthoigian_TextChanged(object sender, EventArgs e)
        {

        }

        private void btnxoa_Click(object sender, EventArgs e)
        {
            if (MessageBox.Show("Bạn có thực sự muốn xóa không ?", "XÓA", MessageBoxButtons.YesNo) == DialogResult.Yes)
            {
                SqlCommand commandelete = new SqlCommand();
                commandelete.Connection = con;
                commandelete.CommandType = CommandType.Text;
                commandelete.CommandText = @"delete from hoc_phi where HP_ID = @HP_ID";
                SqlParameter pram = commandelete.Parameters.Add("@HP_ID", SqlDbType.VarChar, 6);
                pram.Value = txtmahocphi.Text;
                con.Open();
                commandelete.ExecuteNonQuery();
                con.Close();
                dgvhocphi.DataSource = connectdatabase.ex("select * from hoc_phi");
                MessageBox.Show("Bạn đã Xóa thành công!", "Thông Báo", MessageBoxButtons.OK);
                databinding();
            }
        }

        private void txtmahocphi_TextChanged_1(object sender, EventArgs e)
        {

        }

        private void btnsua_Click(object sender, EventArgs e)
        {
            test();
            if (kt == true)
            {
                SqlCommand commandupdate = new SqlCommand();
                commandupdate.Connection = con;
                commandupdate.CommandType = CommandType.Text;
                commandupdate.CommandText = @"update hoc_phi set C_ID = @C_ID, [name] = @name, CL_ID = @CL_ID, so_ngay = @so_ngay, tien_an = @tien_an, hoc_phi = @hoc_phi, thang = @thang where  HP_ID = @HP_ID ";
                SqlParameter pram = commandupdate.Parameters.Add("@HP_ID", SqlDbType.VarChar, 6);
                pram.Value = txtmahocphi.Text;
                pram = commandupdate.Parameters.Add("@C_ID", SqlDbType.VarChar, 6);
                pram.Value = cbomahs.Text;
                pram = commandupdate.Parameters.Add("@name", SqlDbType.NVarChar, 25);
                pram.Value = cbotenhs.Text;
                pram = commandupdate.Parameters.Add("@CL_ID", SqlDbType.VarChar, 6);
                pram.Value = cbolophoc.Text;
                pram = commandupdate.Parameters.Add("@so_ngay", SqlDbType.Int);
                pram.Value = int.Parse(txtsongaydihoc.Text);
                pram = commandupdate.Parameters.Add("@tien_an", SqlDbType.Int);
                pram.Value = int.Parse(txttienan.Text);
                pram = commandupdate.Parameters.Add("@hoc_phi", SqlDbType.Int);
                pram.Value = int.Parse(txthocphi.Text);
                pram = commandupdate.Parameters.Add("@thang", SqlDbType.DateTime);
                pram.Value = txtthoigian.Text;
                con.Open();
                commandupdate.ExecuteNonQuery();
                con.Close();
                dgvhocphi.DataSource = connectdatabase.ex("select * from hoc_phi");
                MessageBox.Show("Bạn đã Sửa thành công!", "Thông Báo", MessageBoxButtons.OK);
                databinding();
            }
        }
        //ham kiem tra tim hoc phi
        private bool kiemtratkhocphi()
        {
            kt = true;
            if (txttkhp.Text == "")
            {
                MessageBox.Show("Bạn phải nhập mã số của học sinh cần tìm kiếm vào", "THÔNG BÁO", MessageBoxButtons.OK);
                kt = false;
                txttkhp.Focus();
            }
            else
                if (txt_tkthang.Text != "")
                {
                    try
                    {
                        Convert.ToInt16(txt_tkthang.Text);
                    }
                    catch
                    {
                        MessageBox.Show("Bạn phải tháng là số", "THÔNG BÁO", MessageBoxButtons.OK);
                        return false;
                    }
                    //MessageBox.Show("do something", "THÔNG BÁO", MessageBoxButtons.OK);
                }
                else
                {
                    MessageBox.Show("Bạn phải nhập tháng cần xem lương của nhân viên", "THÔNG BÁO", MessageBoxButtons.OK);
                    kt = false;
                    txt_tkthang.Focus();
                }
            if (txt_tknam.Text != "")
            {
                try
                {
                    Convert.ToInt16(txt_tknam.Text);
                }
                catch
                {
                    MessageBox.Show("Bạn phải năm là số", "THÔNG BÁO", MessageBoxButtons.OK);
                    kt = false;
                    //return false;
                }
                //MessageBox.Show("do something", "THÔNG BÁO", MessageBoxButtons.OK);
            }
            else
            {
                MessageBox.Show("Bạn phải nhập năm cần xem lương của nhân viên", "THÔNG BÁO", MessageBoxButtons.OK);
                kt = false;
                txt_tknam.Focus();
            }
            return kt;
        }
        private void btntklop_Click(object sender, EventArgs e)
        {
            kiemtratkhocphi();
            if (kt == true)
            {
                dt.Clear();
                SqlCommand commandsearch = new SqlCommand();
                commandsearch.Connection = con;
                commandsearch.CommandType = CommandType.Text;
                commandsearch.CommandText = "select * from hoc_phi where C_ID = @C_ID and MONTH(thang) = @thang and YEAR(thang) =@nam";
                SqlParameter pram = commandsearch.Parameters.Add("@C_ID", SqlDbType.VarChar, 6);
                pram.Value = txttkhp.Text;
                pram = commandsearch.Parameters.Add("@thang", SqlDbType.Int);
                pram.Value = txt_tkthang.Text;
                pram = commandsearch.Parameters.Add("@nam", SqlDbType.Int);
                pram.Value = txt_tknam.Text;
                da.SelectCommand = commandsearch;
                da.Fill(dt);
                if (dt.Rows.Count > 0)
                {
                    dgvhocphi.DataSource = dt;
                }
                else
                {
                    dgvhocphi.DataSource = dt;
                    MessageBox.Show("Không tìm thấy học phí của sinh viên này!", "THÔNG BÁO", MessageBoxButtons.OK);
                }
                databinding();
            }
        }

        private void dgvhocphi_CellContentClick(object sender, DataGridViewCellEventArgs e)
        {

        }

        private void lbltk_Click(object sender, EventArgs e)
        {

        }
    }
}
